<?php
/**
 * 自动加载
 */
class Load
{

	// 声明命名空间与目录的映射
    // public static $vendorMap = array(
    //     'pay' => dirname(__FILE__),
    // );

    /**
     * 自动加载器
     */
    public static function autoLoad($class)
    {
        $file = self::findClassFile($class);
        // try {
        //     require_once $file;
        // } catch (Exception $e) {
        //     exit($e->getMessage());
        // }
        if (file_exists($file))
        {
            require_once $file;
        }else
        {
            throw new Exception("Error $file Not Found", 1);
        }
    }

    /**
    * 解析文件路径
    */
    public static function findClassFile($class)
    {
        // 声明命名空间与目录的映射
    	$vendorMap = array(
            'payClass\\'      => dirname(dirname(__FILE__)),
            'payClass\\pay\\' => dirname(__FILE__),
	    );
        //strpos 获取字符串在另一个字符串第一次出现的位置
		$vendor    = substr($class, 0, strrpos($class, '\\') + 1); //顶级命名空间
		$vendorDir = $vendorMap[$vendor]; // 文件基目录
		$filePath  = substr($class, strlen($vendor)) . '.php'; // 文件相对路径
        return strtr($vendorDir . DIRECTORY_SEPARATOR . $filePath, '\\', DIRECTORY_SEPARATOR); // 文件标准路径
    }

}

spl_autoload_register('Load::autoLoad');